home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 March
/
Chip_2004-03_cd1.bin
/
zkuste
/
defrag
/
download
/
oodefrag
/
O&O Defrag Professional Edition.msi
/
Data1.cab
/
oodpe.chm
/
doctohelp.js
< prev
next >
Wrap
Text File
|
2003-12-15
|
8KB
|
336 lines
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// dhtml functions: require IE4 or later
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var POPUP_COLOR = 0xffffe0;
function dhtml_popup(url)
{
var pop, main, body, x, y;
// no url? then hide the popup
if (url == null || url.length == 0)
{
pop = document.all["popupFrame"];
if (pop != null)
pop.style.display = "none";
return;
}
// if the popup frame is already open, close it first
if (dhtml_popup_is_open())
{
// the main window is the parent of the popup frame
main = window.parent;
body = main.document.body;
pop = main.document.all["popupFrame"];
// add the popup origin to the event coordinates
x = pop.offsetLeft + window.event.offsetX;
y = pop.offsetTop + window.event.offsetY;
// hide the popup frame
pop.style.display = "none";
}
else
{
// the main window is the current window
main = window;
body = document.body;
pop = document.all["popupFrame"];
// use the event coordinates for positioning the popup
x = window.event.x;
y = window.event.y;
// account for the scrolling text region, if present
var nstx = document.all["nstext"];
if (nstx != null)
y += nstx.scrollTop - nstx.offsetTop;
// get the popup frame, creating it if needed
if (pop == null)
{
var div = document.all["popupDiv"];
if (div == null)
return;
div.innerHTML = "<iframe id=\"popupFrame\" frameborder=\"none\" scrolling=\"none\" style=\"display:none\"></iframe>";
pop = document.all["popupFrame"];
}
}
// get frame style
var sty = pop.style;
// load url into frame
pop.src = url;
// initialize frame size/position
sty.position = "absolute";
sty.border = "1px solid #cccccc";
sty.posLeft = x + body.scrollLeft - 30000;
sty.posTop = y + body.scrollTop + 15 - 30000;
var wid = body.clientWidth;
sty.posWidth = (wid > 500)? wid * 0.6: wid - 20;
sty.posHeight = 0;
// wait until the document is loaded to finish positioning
main.setTimeout("dhtml_popup_position()", 100);
}
function dhtml_popup_is_open()
{
return window.location.href != window.parent.location.href;
}
function dhtml_popup_position()
{
// get frame
var pop = document.all["popupFrame"];
var frm = document.frames["popupFrame"];
var sty = pop.style;
// get containing element (scrolling text region or document body)
var body = document.all["nstext"];
if (body == null)
body = document.body;
// hide navigation/nonscrolling elements, if present
dhtml_popup_elements(frm.self.document);
// get content size
sty.display = "block";
frm.scrollTo(0,1000);
sty.posHeight = frm.self.document.body.scrollHeight + 20;
// make content visible
sty.posLeft += 30000;
sty.posTop += 30000;
// adjust x position
if (sty.posLeft + sty.posWidth + 10 - body.scrollLeft > body.clientWidth)
sty.posLeft = body.clientWidth - sty.posWidth - 10 + body.scrollLeft;
// if the frame fits below the link, we're done
if (sty.posTop + sty.posHeight - body.scrollTop < body.clientHeight)
return;
// calculate how much room we have above and below the link
var space_above = sty.posTop - body.scrollTop;
var space_below = body.clientHeight - space_above;
space_above -= 35;
space_below -= 20;
if (space_above < 50) space_above = 50;
if (space_below < 50) space_below = 50;
// if the frame fits above or we have a lot more room there, move it up and be done
if (sty.posHeight < space_above || space_above > 2 * space_below)
{
if (sty.posHeight > space_above)
sty.posHeight = space_above;
sty.posTop = sty.posTop - sty.posHeight - 30;
return;
}
// adjust frame height to fit below the link
sty.posHeight = space_below;
}
function dhtml_popup_elements(doc)
{
// hide navigation bar, if present
var nav = doc.all["ienav"];
if (nav != null)
nav.style.display = "none";
// set popup color and remove background image
doc.body.style.backgroundColor = POPUP_COLOR;
doc.body.style.backgroundImage = "none";
// reset popup color of title row, if present
var trow = doc.all["TitleRow"];
if (trow != null)
trow.style.backgroundColor = POPUP_COLOR;
// reset border/color of nonscrolling banner, if present
var nsb = doc.all["nsbanner"];
if (nsb != null)
{
nsb.style.borderBottom = "0px";
nsb.style.backgroundColor = POPUP_COLOR;
}
// reset background image/color of scrolling text region, if present
var nstx = doc.all["nstext"];
if (nstx != null)
{
nstx.style.backgroundColor = POPUP_COLOR;
nstx.style.backgroundImage = "none";
}
}
function dhtml_nonscrolling_resize()
{
if (document.body.clientWidth == 0)
return;
var oBanner= document.all.item("nsbanner");
var oText= document.all.item("nstext");
if (oText == null)
return;
var oTitleRow = document.all.item("TitleRow");
if (oTitleRow != null)
oTitleRow.style.padding = "0px 10px 0px 22px;";
if (oBanner != null)
{
document.body.scroll = "no"
oText.style.overflow = "auto";
oBanner.style.width = document.body.offsetWidth - 4;
oText.style.paddingRight = "20px"; // Width issue code
oText.style.width = document.body.offsetWidth - 4;
oText.style.top = 0;
if (document.body.offsetHeight > oBanner.offsetHeight + 4)
oText.style.height = document.body.offsetHeight - oBanner.offsetHeight - 4;
else
oText.style.height = 0;
}
// try{nstext.setActive();} //allows scrolling from keyboard as soon as page is loaded. Only works in IE 5.5 and above.
// catch(e){}
window.onresize = d2hnsresize;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// d2h functions: browser-independent
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function d2hie()
{
var ie = navigator.userAgent.toLowerCase().indexOf("msie");
return ie != -1 && parseInt(navigator.appVersion) >= 4;
}
function d2hpopup(url)
{
// use dhtml if we can
if (d2hie())
{
dhtml_popup(url);
return false;
}
// use regular popups
if (url != null && url.length > 0)
{
var pop = window.open(url, '_d2hpopup', 'resizable=1,toolbar=0,directories=0,status=0,location=0,menubar=0,height=300,width=400');
pop.focus(); // if the popup was already open
pop.onblur = "self.close()"; // doesn't work, not sure why...
}
// and ignore the click
return false;
}
function d2hwindow(url, name)
{
if (name != 'main')
{
window.open(url, name, 'scrollbars=1,resizable=1,toolbar=0,directories=0,status=0,location=0,menubar=0,height=300,width=400');
return false;
}
return true;
}
function d2hcancel(msg, url, line)
{
return true;
}
function d2hload()
{
window.focus();
window.onerror = d2hcancel;
if (window.name == '_d2hpopup')
{
var major = parseInt(navigator.appVersion);
if (major >= 4)
{
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf("msie") != -1)
document.all.item("ienav").style.display = "none";
else
document.layers['nsnav'].visibility = 'hide';
}
}
}
function d2hframeload()
{
// for compatibility with HTML generated by earlier versions
}
function d2htocload()
{
if (d2hie())
{
var id, elt;
var count = document.all.length;
for (i = 0; i < count; i++)
{
elt = document.all.item(i);
if (elt.id.substring(0, 1) == "c")
elt.style.display = "none";
else if (elt.id.substring(0, 2) == "mi")
elt.src = "closed.gif";
}
}
}
function d2hclick()
{
if (d2hie())
{
var id = window.event.srcElement.id;
if (id.substring(0, 1) != "m")
return;
var sub = id.substring(2);
var elt = document.all.item("c" + sub);
var img = document.all.item("mi" + sub);
if (elt.style.display == "none")
{
elt.style.display = "";
img.src = "open.gif";
}
else
{
elt.style.display = "none";
img.src = "closed.gif";
}
}
}
function d2hnsresize()
{
if (d2hie())
dhtml_nonscrolling_resize();
}